package lp2.projetoagenda;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.Scanner;

public class GerenciadorDeContatos {

	Contatos contatos;
	Contato contato;

	public GerenciadorDeContatos(){
		 try {  
			         File file = new File("Dados3.txt");  
			       
			         
			         boolean success = file.createNewFile();  
			        if (success) {  
			        	contatos = new Contatos();
			        	escreveArquivoObjeto(contatos);
			         } else {  
			             contatos = leArquivoObjeto();
			        }  
			     } catch (IOException e) {  
			     } 
			     
	}
	
	public  void escreveArquivoObjeto(Contatos p) throws IOException{
		ObjectOutputStream out = null;
		String nome = "Dados3.txt";
		try{
			out = new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream(nome)));
			out.writeObject(p);			
		}catch(IOException e){
			System.err.println(e.getMessage());
		}finally{
			out.close();
		}
	}
	
	public  Contatos leArquivoObjeto() throws IOException{
		ObjectInputStream in = null;
		Contatos p = null;
		String nome = "Dados3.txt";
		try{
			in = new ObjectInputStream(new BufferedInputStream(new FileInputStream(nome)));
			p = (Contatos) in.readObject();
		}catch(ClassNotFoundException e){
			System.err.println(e.getMessage());
		}catch(IOException e){
			System.err.println(e.getMessage());
		}finally{
			in.close();
		}
		return p;
	}
	
	public Contatos getContatos(){
		return contatos;
	}
	
	public void cadastraNovoContato(){
		Scanner teclado = new Scanner(System.in);
		contato = new Contato(null, null, 0, 0, 0);
		System.out.println("ano de nascimento: ");
		contato.setAno(teclado.nextInt());
		System.out.println("dia do aniversario: ");
		contato.setDia(teclado.nextInt());
		System.out.println("mes do aniversario: ");
		contato.setMes(teclado.nextInt());
		System.out.println("nome: ");
		contato.setNome(teclado.next());
		System.out.println("endereco: ");
		contato.setEndereco(teclado.next());
		contatos.adicionarContato(contato);
		try {
			escreveArquivoObjeto(contatos);
		} catch (IOException e) {
		}
	}
	
	public void setContatos(Contatos cont) throws IOException{
		contatos = cont;
		escreveArquivoObjeto(cont);
	}
}
